package com.bsoft.gol.hcs.odshmrecord.service;


import ctd.controller.exception.ControllerException;
import ctd.util.annotation.RpcService;
import hcn.base.healthinfo.OdsHmBind;
import com.bsoft.gol.hcs.odshmrecord.bean.request.*;
import com.bsoft.gol.hcs.odshmrecord.bean.response.*;
import org.atag.dao.model.SimplePageInfo;

import java.util.List;

/**
 * @author
 * @date
 * @Description 健康监测接口
 */
public interface IOdsHmRecordService {

    /**
     * 获取设备列表
     * @return
     * @throws ControllerException
     */
    @RpcService
    List<ModelListResponse> queryModelList()throws ControllerException;

    /**
     * 查询用户绑定设备列表
     */
    @RpcService
    List<HmBindListResponse> queryHmBindList(HmBindListRequest hmBindListRequest)throws ControllerException;

    /**
     * 查询用户绑定设备详情
     */
    @RpcService
    HmBindListResponse queryHmBindDetail(HmBindDetailRequest hmBindDetailRequest)throws ControllerException;

    /**
     * 修改个人设备绑定人
     *
     * @param updateHmBindRequest
     */
    @RpcService
    OdsHmBind updateHmBind(UpdateHmBindRequest updateHmBindRequest) throws ControllerException;
    /**
     * 解除设备绑定
     *
     * @param hmBindDetailRequest 设备绑定标识
     */

    @RpcService
    void deleteHmBind(HmBindDetailRequest hmBindDetailRequest) throws ControllerException;


    /**
     * 绑定用户设备
     *
     * @param saveHmBindRequest
     */
    @RpcService
    SaveHmBindResp saveHmBind(SaveHmBindRequest saveHmBindRequest) throws ControllerException;
    /**
     * 录入健康监测数据
     *
     * @param
     */
    @RpcService
    SaveRecordResponse saveRecord(SaveRecordRequest saveRecordRequest) throws ControllerException;

    /**
     * 健康监测记录list
     * @return
     * @throws ControllerException
     */
    @RpcService
    SimplePageInfo<RecordDetailListVo> findOdsHmRecordList(FindOdsHmRecordListRequest findOdsHmRecordListRequest)throws ControllerException;


    /**
     * 实时健康监测平台的设备检测数据
     * @return
     * @throws ControllerException
     */
    @RpcService
    QueryHmRecordListResponse queryHmRecordList(QueryHmRecordListRequest queryHmRecordListRequest)throws ControllerException;

    @RpcService
    void updateIndexHpiCode(UpdateIndexHpiCodeRequest request);
}
